Commonly, storage devices and their host refer to data in 512 byte block atomic units. Typically, these data storage devices reference data content by multiple data blocks. Each block can be given a unique logical block address, or LBA. In general, the host will control the assignment of data to LBAs at its discretion. A host also may manage multiple storage devices, and may track the assignment of data and LBAs to each device.
A storage device such as a hard disk drive (HDD) can apply certain advantages to the data storage and retrieval process if it has prior knowledge about the data. For example, knowledge that certain data content is contiguous in some way to other data can be typical and quite useful in many regards. However, the typical HDD is designed to support the requirements of random access storage. That is, no assumption can generally be made about a given data block in terms of its relative association to any other data block.
The ATA-7 AV Streaming Feature set for example makes reference to the behavior of a streaming command. A read or write streaming command may tell the storage device that the host wishes to place a time limit on the completion of the command of interest. The ATA-7 specification refers to “streaming commands,” which provide a protocol for the host to prioritize stream integrity over data integrity during the handling of a given streaming command. The constraints imposed by the host for a streaming command under this specification are expressly limited to the behavior of the command, and not to the behavior of the data.
The ATA-7 streaming commands and specification attempt to provide a framework for structured streaming data storage. However, random access to data may be allowed during a streaming operation because streaming commands may access any user LBA on a device. Also, random access to data may be allowed during a streaming operation because streaming and non-streaming commands may be interspersed during a streaming operation sequence. Thus, the framework may not provide a clear and unambiguous mechanism for assigning streaming properties to the data itself. The lack of such a clear streaming assignment may leave the storage device unable to ascribe streaming attributes to the host data content. Therefore, there is a need for an apparatus and method that allows a storage device to apply the advantages of streaming to the data stored to its media.